Skip to content

Time point timer#514

Merged
AlexInLog merged 3 commits into
AlexInLog:v2from
CorentinBT:time_point_timer
Feb 4, 2024
Merged

Time point timer#514
AlexInLog merged 3 commits into
AlexInLog:v2from
CorentinBT:time_point_timer

Conversation

@CorentinBT

Copy link
Copy Markdown
Contributor

No description provided.

Comment thread src/rpp/rpp/sources/timer.hpp Outdated
@github-actions

github-actions Bot commented Jan 27, 2024

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 300.76 ns 2.16 ns 5.36 ns 0.40
Subscribe empty callbacks to empty observable via pipe operator 303.33 ns 2.16 ns 2.22 ns 0.97

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 696.33 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1025.05 ns 5.25 ns 5.34 ns 0.98
concat_as_source of just(1 immediate) create + subscribe 2296.89 ns 112.79 ns 129.74 ns 0.87
defer from array of 1 - defer + create + subscribe + immediate 723.59 ns 0.31 ns 0.31 ns 0.99
interval - interval + take(3) + subscribe + immediate 2141.67 ns 58.03 ns 57.97 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3081.05 ns 32.14 ns 32.58 ns 0.99

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1076.61 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 842.35 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1071.52 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 868.22 ns 0.31 ns 0.31 ns 0.99
immediate_just(1,2)+first()+subscribe 1264.67 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 928.77 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1118.09 ns 18.53 ns 18.52 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 266.91 ns 2.16 ns 2.16 ns 1.00
current_thread scheduler create worker + schedule 359.79 ns 7.10 ns 7.15 ns 0.99
current_thread scheduler create worker + schedule + recursive schedule 832.25 ns 63.98 ns 63.91 ns 1.00

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 844.43 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 888.15 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2328.93 ns 163.60 ns 165.73 ns 0.99
immediate_just+buffer(2)+subscribe 1567.34 ns 14.21 ns 14.19 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2308.72 ns 995.58 ns 1029.60 ns 0.97

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 828.40 ns - - 0.00
immediate_just+take_while(true)+subscribe 832.42 ns 0.31 ns 0.31 ns 0.99

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1965.26 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3427.18 ns 174.33 ns 180.66 ns 0.96
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3661.73 ns 171.81 ns 176.60 ns 0.97
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 134.97 ns 165.45 ns 0.82
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3557.72 ns 993.60 ns 1032.65 ns 0.96

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.59 ns 12.03 ns 12.02 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1373.34 ns 14.20 ns 14.37 ns 0.99
basic sample with immediate scheduler 1357.32 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 896.59 ns 0.31 ns 0.31 ns 1.00

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 974.47 ns 3.82 ns 5.39 ns 0.71
Subscribe empty callbacks to empty observable via pipe operator 973.86 ns 3.84 ns 5.38 ns 0.71

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1937.47 ns 0.23 ns 0.44 ns 0.53
from array of 1 - create + subscribe + current_thread 2442.66 ns 25.63 ns 8.89 ns 2.88
concat_as_source of just(1 immediate) create + subscribe 5447.95 ns 328.26 ns 386.07 ns 0.85
defer from array of 1 - defer + create + subscribe + immediate 1979.35 ns 0.23 ns 0.28 ns 0.84
interval - interval + take(3) + subscribe + immediate 4949.70 ns 114.36 ns 90.66 ns 1.26
interval - interval + take(3) + subscribe + current_thread 6025.34 ns 107.54 ns 59.20 ns 1.82

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2724.60 ns 0.22 ns 0.28 ns 0.80
immediate_just+filter(true)+subscribe 2070.72 ns 0.23 ns 0.28 ns 0.82
immediate_just(1,2)+skip(1)+subscribe 2684.83 ns 0.23 ns 0.28 ns 0.82
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1986.56 ns 0.45 ns 0.54 ns 0.82
immediate_just(1,2)+first()+subscribe 3115.24 ns 0.23 ns 0.28 ns 0.82
immediate_just(1,2)+last()+subscribe 2332.10 ns 0.23 ns 0.28 ns 0.82
immediate_just+take_last(1)+subscribe 2949.67 ns 68.01 ns 71.50 ns 0.95

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 840.66 ns 4.02 ns 5.73 ns 0.70
current_thread scheduler create worker + schedule 1181.74 ns 38.70 ns 15.00 ns 2.58
current_thread scheduler create worker + schedule + recursive schedule 1977.30 ns 218.76 ns 157.06 ns 1.39

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2072.29 ns 0.23 ns 0.27 ns 0.84
immediate_just+scan(10, std::plus)+subscribe 2275.88 ns 0.46 ns 0.56 ns 0.82
immediate_just+flat_map(immediate_just(v*2))+subscribe 5106.02 ns 404.92 ns 463.12 ns 0.87
immediate_just+buffer(2)+subscribe 2399.74 ns 67.35 ns 69.10 ns 0.97
immediate_just+window(2)+subscribe + subscsribe inner 5084.85 ns 2071.78 ns 2637.71 ns 0.79

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2062.84 ns - - 0.00
immediate_just+take_while(true)+subscribe 2070.38 ns 0.23 ns 0.28 ns 0.82

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 4756.07 ns 0.22 ns 0.28 ns 0.80

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 7370.12 ns 442.81 ns 519.60 ns 0.85
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 8187.51 ns 437.54 ns 524.14 ns 0.83
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 463.35 ns 516.38 ns 0.90
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 7739.01 ns 1860.36 ns 2346.19 ns 0.79

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 72.54 ns 47.01 ns 60.46 ns 0.78

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 2704.98 ns 108.64 ns 44.50 ns 2.44
basic sample with immediate scheduler 2725.48 ns 14.21 ns 5.69 ns 2.50

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2279.14 ns 0.22 ns 0.28 ns 0.80

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 266.06 ns 0.88 ns 0.88 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 264.61 ns 0.88 ns 0.88 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 563.19 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 799.54 ns 5.56 ns 5.55 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1932.56 ns 112.82 ns 113.13 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 593.18 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1554.86 ns 57.07 ns 57.03 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2118.79 ns 30.86 ns 30.86 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 945.14 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 670.50 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 844.20 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 690.50 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1103.00 ns 0.33 ns 0.31 ns 1.07
immediate_just(1,2)+last()+subscribe 746.84 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 962.98 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 195.17 ns 0.88 ns 0.88 ns 1.00
current_thread scheduler create worker + schedule 308.53 ns 5.58 ns 5.57 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 620.24 ns 59.52 ns 60.46 ns 0.98

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 671.11 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 715.60 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1791.41 ns 119.18 ns 118.96 ns 1.00
immediate_just+buffer(2)+subscribe 1362.18 ns 14.50 ns 15.12 ns 0.96
immediate_just+window(2)+subscribe + subscsribe inner 2121.30 ns 754.58 ns 762.89 ns 0.99

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 649.53 ns - - 0.00
immediate_just+take_while(true)+subscribe 700.08 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1593.53 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2506.33 ns 125.37 ns 125.15 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3015.17 ns 121.28 ns 120.94 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 112.73 ns 112.92 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2697.18 ns 724.57 ns 723.38 ns 1.00

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 26.32 ns 12.66 ns 12.95 ns 0.98

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1059.08 ns 14.19 ns 14.19 ns 1.00
basic sample with immediate scheduler 1037.76 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 732.22 ns 0.31 ns 0.31 ns 1.00

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 576.95 ns 4.01 ns 4.01 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 591.13 ns 4.02 ns 4.01 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1182.91 ns 4.94 ns 4.93 ns 1.00
from array of 1 - create + subscribe + current_thread 1445.21 ns 20.40 ns 19.75 ns 1.03
concat_as_source of just(1 immediate) create + subscribe 4700.00 ns 172.18 ns 171.84 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 1230.83 ns 4.93 ns 4.93 ns 1.00
interval - interval + take(3) + subscribe + immediate 2954.12 ns 129.60 ns 129.44 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3462.83 ns 60.79 ns 60.75 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1860.50 ns 12.87 ns 12.87 ns 1.00
immediate_just+filter(true)+subscribe 1335.63 ns 12.40 ns 12.40 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1780.87 ns 13.06 ns 13.07 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1626.48 ns 15.95 ns 15.94 ns 1.00
immediate_just(1,2)+first()+subscribe 2415.98 ns 12.97 ns 12.95 ns 1.00
immediate_just(1,2)+last()+subscribe 1474.93 ns 14.14 ns 14.10 ns 1.00
immediate_just+take_last(1)+subscribe 2054.79 ns 59.42 ns 59.37 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 486.40 ns 7.29 ns 7.29 ns 1.00
current_thread scheduler create worker + schedule 661.88 ns 17.60 ns 18.20 ns 0.97
current_thread scheduler create worker + schedule + recursive schedule 1097.65 ns 111.96 ns 111.02 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1411.52 ns 12.32 ns 12.34 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1496.32 ns 21.29 ns 21.27 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 3658.18 ns 227.11 ns 231.19 ns 0.98
immediate_just+buffer(2)+subscribe 2700.72 ns 61.02 ns 61.10 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 4113.98 ns 1178.17 ns 1145.57 ns 1.03

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1663.14 ns 11.48 ns 11.47 ns 1.00
immediate_just+take_while(true)+subscribe 1411.03 ns 12.38 ns 12.37 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3274.47 ns 7.40 ns 7.40 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5364.68 ns 254.15 ns 255.12 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6773.49 ns 244.45 ns 247.20 ns 0.99
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 229.21 ns 231.73 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6312.05 ns 1012.15 ns 965.34 ns 1.05

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.48 ns 25.30 ns 25.59 ns 0.99

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1882.12 ns 59.31 ns 59.40 ns 1.00
basic sample with immediate scheduler 1885.37 ns 37.03 ns 38.25 ns 0.97

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1810.22 ns 19.98 ns 19.98 ns 1.00

@codecov

codecov Bot commented Jan 27, 2024

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (0415e1f) 95.91% compared to head (15ef13d) 95.93%.
Report is 4 commits behind head on v2.

Additional details and impacted files
@@            Coverage Diff             @@
##               v2     #514      +/-   ##
==========================================
+ Coverage   95.91%   95.93%   +0.01%     
==========================================
  Files          80       80              
  Lines        2055     2064       +9     
==========================================
+ Hits         1971     1980       +9     
  Misses         84       84              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@sonarqubecloud

sonarqubecloud Bot commented Feb 4, 2024

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

2 New issues
0 Security Hotspots
51.3% Coverage on New Code
0.7% Duplication on New Code

See analysis details on SonarCloud

@AlexInLog AlexInLog merged commit 721b469 into AlexInLog:v2 Feb 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants